package com.lyf.shop.service;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.lyf.shop.entity.Car;
import com.lyf.shop.vo.CartVo;

import java.util.List;

/**
 * (Car)表服务接口
 *
 * @author makejava
 * @since 2021-12-03 14:45:41
 */
public interface CarService {

    /**
     * 通过ID查询单条数据
     *
     * @param cid 主键
     * @return 实例对象
     */
    Car queryById(Integer cid);

    /**
     * 查询多条数据
     *
     * @param offset 查询起始位置
     * @param limit 查询条数
     * @return 对象列表
     */
    List<Car> queryAllByLimit(int offset, int limit);

    /**
     * 新增数据
     *
     * @param car 实例对象
     * @return 实例对象
     */
    Car insert(Car car);

    /**
     * 修改数据
     *
     * @param car 实例对象
     * @return 实例对象
     */
    Car update(Car car);

    /**
     * 通过主键删除数据
     *
     * @param cid 主键
     * @return 是否成功
     */
    boolean deleteById(Integer cid);

    CartVo getCart() throws JsonProcessingException;

    void addCartItem(CartVo cartVo, int pid, int num) throws JsonProcessingException;

    void deleteCartItem(CartVo cart, int pid) throws JsonProcessingException;

    void changeChecked(CartVo cart, int pid) throws JsonProcessingException;

    void changeCartItemNum(CartVo cart, int pid, int num) throws JsonProcessingException;
}